package com.jzo2o.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.AgencyCertificationAudit;
import com.jzo2o.customer.model.dto.AgencyCertificationUpdateDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.request.CertificationAuditReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;
import com.jzo2o.customer.model.dto.response.RejectReasonResDTO;

/**
 * @author SpongeBob
 */
public interface IAgencyCertificationAuditService extends IService<AgencyCertificationAudit> {
    /**
     * 添加机构认证信息
     *
     * @param agencyCertificationUpdateDTO 机构认证信息
     */
    void saveAgency(AgencyCertificationUpdateDTO agencyCertificationUpdateDTO);

    /**
     * 查询当前用户最后一次驳回原因
     *
     * @return 驳回原因
     */
    RejectReasonResDTO queryCurrentUserLastRejectReason();

    /**
     * 机构认证信息分页查询
     *
     * @param agencyCertificationAuditPageQueryReqDTO 查询参数
     * @return 机构认证信息
     */
    PageResult<AgencyCertificationAuditResDTO> pageQueryAgencyCertificationAudit(AgencyCertificationAuditPageQueryReqDTO agencyCertificationAuditPageQueryReqDTO);

    /**
     * 机构认证信息审核
     *
     * @param id                       机构认证信息id
     * @param certificationAuditReqDTO 审核参数
     */
    void audit(Long id, CertificationAuditReqDTO certificationAuditReqDTO);
}
